package gameEngine;

import java.lang.Math;

/**
 * Un des "pions" control�e par l'IA sur le terrain.
 * Peut tirer dans la balle entre autre.
 *
 */
public class Player extends Entity 
{
	
	
	/**
	 * Rayon d'un joueur.
	 */
	public static final int SIZE = 15;
	
	/**
	 * Vitesse maximale
	 */
	public static final float MAX_SPEED = 58; //pif	
	
	/**
	 * Bool�en indiquant s'il est en train de tirer
	 */
	private boolean isShooting;
	
	/**
	 * Force du shoot, plus c'est fort, plus �a met de temps � tirer, mais plus �a va loin.
	 */
	private int shootStrenght;
	
	
	/**
	 * Constructeurs...
	 * Met surtout la position comme il faut (dans la classe mére)
	 * 
	 */
	public Player(int x, int y)
	{
         pos = new Position(x, y);
	}
        
    public Player() 
    {
         this(0, 0);
    }
	
	/**
	 * Modification de la vitesse en controlant la vitesse max
	 */
	public void set_velVal(float newVal)
	{
		if(newVal < 0)
		{ velVal = 0;}
		else if (newVal > MAX_SPEED)
		{ velVal = MAX_SPEED;}
		else
		{ velVal = newVal; }
	}
	
	/**
	 * Modification de l'angle sans v�rif � priori
	 * [-pi, pi] (dans un 1er temps)
	 */
	public void set_velAngle(float newAngle) //pi � d�finir avant de faire ^^
	{
		if( -Math.PI < newAngle && newAngle <= Math.PI )
		{ velAngle = newAngle; }
		else
		{velAngle = newAngle % (float)Math.PI;} // à verif, marche pas en cpp	
	}
	
	/**
	 * Juste un acces au booleen
	 */
	public boolean is_shooting()
	{ return isShooting; }
	
	/**
	 * Mutateur
	 * @param b la nouvelle valeur su shoot
	 */
	public void is_shooting(boolean b)
	{ isShooting = b; }
	
	/**
	 * Retourne la valeur de la force sur shoot
	 */
	public int get_shootStrenght()
	{ return shootStrenght ; }
	
	/**
	 * Modifie la force du shoot
	 */
	public void set_shootStrenght(int strenght)
	{ shootStrenght = strenght ; }
        

}
